// interrogation/video/video.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    template: '1v1',
    debugMode: false,
    cloudenv: 'PRO',
    trtcConfig:{
      sdkAppID: '', // 必要参数 开通实时音视频服务创建应用后分配的 sdkAppID
      userID: '', // 必要参数 用户 ID 可以由您的帐号系统指定
      userSig: '', // 必要参数 身份签名，相当于登录密码的作用
      template: '1v1', // 必要参数 组件模版，支持的值 1v1 grid custom ，注意：不支持动态修改, iOS 不支持 pusher 动态渲染
      enableCamera:true,
      enableMic:true,
      debugMode:true,
      beautyLevel:5,
      whitenessLevel:5,
      localAudio:true,
      localVideo:true,
      audioVolumeType:'voicecall'
    },
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let roomId = parseInt(Math.random()*1000000000);
    app.globalData.tradeNo = options.tradeNo;
    app.globalData.room = roomId;
    this.setData({
      room: roomId, //取值范围1 ~ 4294967295
      tradeNo: options.tradeNo,
      trtcConfig:{
          sdkAppID: options.sdkAppid,  // 开通实时音视频服务创建应用后分配的 SDKAppID
          userID: app.globalData.sid, // 用户 ID，可以由您的帐号系统指定
          userSig: options.userSign, // 身份签名，相当于登录密码的作用
          template: '1v1',        // 画面排版模式，支持1v1，grid，custom
      }
     },()=>{
      let trtcRoomContext = this.selectComponent('#trtcroom')
      let EVENT = trtcRoomContext.EVENT
     
      if(trtcRoomContext) {
          trtcRoomContext.on(EVENT.LOCAL_JOIN, (event)=>{
              // 进房成功后发布本地音频流和视频流 
              trtcRoomContext.publishLocalVideo()
              trtcRoomContext.publishLocalAudio()
          })
          // 监听远端用户的视频流的变更事件
          trtcRoomContext.on(EVENT.REMOTE_VIDEO_ADD, (event)=>{
              // 订阅（即播放）远端用户的视频流
              let userID = event.data.userID
              let streamType = event.data.streamType// 'main' or 'aux'            
              trtcRoomContext.subscribeRemoteVideo({userID: userID, streamType: streamType})
          })
     
          // 监听远端用户的音频流的变更事件
          trtcRoomContext.on(EVENT.REMOTE_AUDIO_ADD, (event)=>{
              // 订阅（即播放）远端用户的音频流
              let userID = event.data.userID
              trtcRoomContext.subscribeRemoteAudio({userID: userID})
          })
     
          // 进入房间
          trtcRoomContext.enterRoom({roomID: this.data.room}).then(res=>{
            let data1 = JSON.stringify({
              action: 'video_call',
              sid: app.globalData.sid,
              utype: 'nor',
              sign: app.globalData.sign,
              data:{
                trade_no: this.data.tradeNo,
                doctor_id: app.globalData.doctorId,
                room: this.data.room
              }
            }) 
            console.log("进入房间成功，开始发送请求",data1);
            wx.sendSocketMessage({
              data: data1
            });
          }).catch((res)=>{
              console.error('room joinRoom 进房失败:', res)
          })
      }
     })
  },

 

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    wx.setKeepScreenOn({
      keepScreenOn: true,
    })
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    wx.setKeepScreenOn({
      keepScreenOn: true,
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    wx.setKeepScreenOn({
      keepScreenOn: false,
    })
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

})